#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>	// sleep 函数需要导入该头文件

// 定义一个全局变量
int value = 100;

void* helloFunc(void* args) {	// 线程函数
	for (int i = 0; i < 3; i++) {
		printf("hello(%d), value=%d\n", rand()%100, value++);
		// 睡眠1s
		sleep(1);
	}
}

void* worldFunc(void* args) {	// 线程函数
	for (int i = 0; i < 3; i++) {
		printf("world(%d), value=%d\n", rand()%100, value++);
		// 睡眠1s
		sleep(1);
	}
}


int main() {

	// 初始化随机数
	srand(time(NULL));
	
	pthread_t tid1, tid2;
	
	// 创建两个函数
	pthread_create(&tid1, NULL, helloFunc, NULL);
	pthread_create(&tid2, NULL, worldFunc, NULL);

	// 主线程等待子线程结束
	pthread_join(tid1, NULL);
	pthread_join(tid2, NULL);
	
	printf("In main thread, value=%d.\n", value);

	return 0;
}
